home *** CD-ROM | disk | FTP | other *** search
/ Chip: 2005 Utilities / CHIP Utilities 2005.7z / CHIP Utilities 2005.iso / images / arachne.igz / arachne.img / LEVEL0 / UTILZ.CAB / bin / Crc.bat < prev    next >
DOS Batch File  |  2005-01-16  |  3KB  |  131 lines

  1. @if "%debug%"=="" echo off
  2. if "%1"==":" if not "%2"=="" goto %2
  3. for %%i in (%tmp%\_crc.*) do if exist %%i del %%i
  4. :: Crc Begin ::
  5.  
  6.  
  7. if "%1"=="" goto _end
  8. if not exist %1\nul %0 : _error Could not find '%1'
  9.  
  10. :_chkvol
  11. dir %srcdrv% >%tmp%\_crc.tmp
  12. lmod [$!]<%tmp%\_crc.tmp >%tmp%\_crc.bak
  13. lmod @set _crc2=[1,8][+]@set _crc=[9,3]<%tmp%\_crc.bak >%tmp%\_crc.bat
  14. set _crc2=
  15. set _crc=
  16. call %tmp%\_crc.bat
  17. for %%i in (nwd NWD nwD nWd Nwd nWD NwD NWd) do if "%_crc%"=="%%i" goto _buildcrc
  18. if not "%2"=="" if "%2"=="%srcdrv%" goto _buildcrc
  19. set _crc2=
  20. set _crc=
  21. goto _end
  22.  
  23. :_buildcrc
  24. dir %1\*.* /s >%tmp%\_crc.tmp
  25. tfind ":" <%tmp%\_crc.tmp >%tmp%\_crc.bak
  26. tfind /v "<dir>" <%tmp%\_crc.bak >%tmp%\_crc.tmp
  27. tfind /v "%1" <%tmp%\_crc.tmp >%tmp%\_crc.bak
  28. tfind /v /f10,3 "___" <%tmp%\_crc.bak >%tmp%\_crc.tmp
  29. type %tmp%\_crc.tmp >%tmp%\_crc.bak
  30. crc32 %tmp%\_crc.bak >%tmp%\_crc.tmp
  31. lmod @set _crc=[$2]<%tmp%\_crc.tmp >%tmp%\_crc.bat
  32. set _crc=
  33. call %tmp%\_crc.bat
  34. if not "%3"=="" if "%2"=="%3" goto _chkcrc
  35. if not "%2"=="" goto _newcrc
  36. goto _chkcrc
  37.  
  38. :_chkcrc
  39. if "%3"=="" goto _simple
  40. dir %3 >%tmp%\_crc.tmp
  41. lmod [$!]<%tmp%\_crc.tmp >%tmp%\_crc.bak
  42. lmod @set _crc2=[1,8]<%tmp%\_crc.bak >%tmp%\_crc.bat
  43. set _crc2=
  44. call %tmp%\_crc.bat
  45. :_simple
  46. if not "%_crc2%"=="%_crc%" goto _wrong
  47. if exist %ramdrv%\halt.txt del %ramdrv%\halt.txt >%tmp%\nul
  48. echo CRC: Crc32 '%1' %_crc% (ok)
  49. set _crc2=
  50. set _crc=
  51. goto _end
  52.  
  53. :_newcrc
  54. for %%i in (a: A: b: B: %ramdrv%) do if "%2"=="%%i" goto _label
  55. goto _env
  56. :_label
  57. if not exist %2\nul goto _env
  58. volume %2%_crc%nwd
  59. echo CRC: Crc32 '%1' %_crc% (imprinted)
  60. set _crc2=
  61. set _crc=
  62. goto _end
  63. :_env
  64. echo CRC: Crc32 '%1' %_crc% (env)
  65. set _crc2=
  66. goto _end
  67.  
  68. :_wrong
  69. set _crc=
  70. set _crc2=
  71. echo HALT >%ramdrv%\halt.txt
  72. echo CRC: Crc32 '%1' failed (compromised disk) 
  73. echo :w_wrong " NwDsk failed Crc32 " [x]>%tmp%\_crc.tmp
  74. echo                                         (%1)>>%tmp%\_crc.tmp
  75. if not exist %ramdrv%\etc\haltcrc.txt goto :_notxt1
  76. type %ramdrv%\etc\haltcrc.txt >>%tmp%\_crc.tmp
  77. echo. >>%tmp%\_crc.tmp
  78. echo                   [? Ok ] >>%tmp%\_crc.tmp
  79. call w.bat box @%tmp%\_crc.tmp:w_wrong #0
  80. goto _reboot
  81. :_notxt1
  82. if not exist %ramdrv%\etc\stopcrc.txt goto :_notxt2
  83. type %ramdrv%\etc\stopcrc.txt >>%tmp%\_crc.tmp
  84. echo. >>%tmp%\_crc.tmp
  85. echo                [ Ok ] [? Cancel] >>%tmp%\_crc.tmp
  86. call w.bat box @%tmp%\_crc.tmp:w_wrong #2
  87. if errorlevel 2 goto _semiend
  88. goto _reboot
  89. :_notxt2
  90. echo      This diskette has been compromised >>%tmp%\_crc.tmp
  91. echo          Crc32 failed on some files >>%tmp%\_crc.tmp
  92. echo. >>%tmp%\_crc.tmp
  93. echo         This session will be aborted >>%tmp%\_crc.tmp
  94. echo. >>%tmp%\_crc.tmp
  95. echo Please replace this diskette or shutdown the PC >>%tmp%\_crc.tmp
  96. echo           Press 'Ok' to reboot the PC >>%tmp%\_crc.tmp
  97. echo. >>%tmp%\_crc.tmp
  98. echo                    [? Ok ] >>%tmp%\_crc.tmp
  99. call w.bat box @%tmp%\_crc.tmp:w_wrong #0
  100. goto _reboot
  101.  
  102. :_error
  103. shift
  104. shift
  105. echo.
  106. echo CRC (error) %1 %2 %3 %4 %5 %6 %7 %8
  107. echo.
  108. @rem pause
  109. goto _end
  110.  
  111. :_semiend
  112. set wbat=
  113. set ?=
  114. for %%i in (%tmp%\_crc.*) do if exist %%i del %%i
  115. el! 1
  116. goto _veryend
  117.  
  118. :_reboot
  119. set wbat=
  120. set ?=
  121. for %%i in (%tmp%\_crc.*) do if exist %%i del %%i
  122. reboot /c
  123. goto _veryend
  124.  
  125. :_end
  126. set wbat=
  127. set ?=
  128. for %%i in (%tmp%\_crc.*) do if exist %%i del %%i
  129. :_veryend
  130. :: Crc End ::
  131.